#pragma once
#include <string>

struct Vec3 {
	float x;
	float y;
	float z;
};

class Decoration
{
public:
	Decoration( void );
	Decoration( const std::string name, const std::string model_path, const float pos_x, const float pos_y, const float pos_z, const float angle,
		        const int axis, const float scale );
	Decoration( const Decoration &r );
	~Decoration( void );
public: // operators
	bool operator != (const Decoration &r);
	bool operator == (const Decoration &r);
	Decoration& operator = (const Decoration &r);
// methods - gets & sets
public:
	std::string getName( void ) const;
	void setName( const std::string name );
	std::string getModelPath( void ) const;
	void setModelPath( const std::string model_path );
	float getPosX( void ) const;
	void setPosX( const float pos_x );
	float getPosY( void ) const;
	void setPosY( const float pos_y );
	float getPosZ( void ) const;
	void setPosZ( const float pos_z );
	float getAngle( void ) const;
	void setAngle( const float angle );
	int getAxis( void ) const;
	void setAxis( const int axis );
	float getScale( void ) const;
	void setScale( const float scale );
// attributes
private:
	std::string m_name;
	std::string m_model_path;
	Vec3 m_position;
	float m_angle;
	int m_axis; // 0 - x, 1 - y, 2 - z
	float m_scale;
};

